const path = require('path')

module.exports = {
  getRandomArrayElements,
  gerRandomWords
}

// 随机取元素
function getRandomArrayElements(arr, count) {
  var shuffled = arr.slice(0),
    i = arr.length,
    min = i - count,
    temp,
    index
  while (i-- > min) {
    index = Math.floor((i + 1) * Math.random())
    temp = shuffled[index]
    shuffled[index] = shuffled[i]
    shuffled[i] = temp
  }
  return shuffled.slice(min)
}

// 打乱数组
function gerRandomWords(arr) {
  const temp = JSON.parse(JSON.stringify(arr))
  let words = []
  temp.forEach(x => {
    words = [...words, ...path.basename(x, '.png').split('')]
  })
  //sort 是对数组进行排序
  //他的是这样工作的。每次从数组里面挑选两个数 进行运算。
  //如果传入的参数是0 两个数位置不变。
  //如果参数小于0 就交换位置
  //如果参数大于0就不交换位置
  //接下来用刚才的较大数字跟下一个进行比较。这样循环进行排序。

  /*恰好。我们利用了这一点使用了0.5 - Math.random  这个运算的结果要么是大于0,要么是小于0.这样要么交换位置，要么不交换位置。当然大于或者小于0是随即出现的。所以数组就被随即排序了。*/
  words.sort(function() {
    return 0.5 - Math.random()
  })
  return words
}
